package s2elinshu;

import java.util.Calendar;
import java.util.Date;

public class J18StringBuildCalendar {

	public static void main(String[] args) {
		// 동기화가 필요 없다면 stringbuilder
		// 필요하다면 sting buffer
		StringBuilder sb = new StringBuilder();
		sb.append("Hello,").append("Java").append("!!");				
		System.out.println(sb.toString());
		
		
		// 날짜 시간 다루기
        Date today = new Date();   // java.util로 해야 함
		System.out.println(today);
		System.out.println(today.toLocaleString());  
		//거주 국가에 따라 시간, 날짜 출력하려면 toLocaleString()을 사용(조만간 없어질 기능.)
		//대신, DateFormat클래스를 사용할 것을 추천
		
		// Date
		// JDK1.0 부터 지원하기 시작
		// 하지만, 다양한 날짜/시간 처리하기에 기능이 너무 부족한 탓에 
		// JDK1.1부터 Calendar클래스가 새로 추가
		// Date 클래스의 대부분의 기능은 deprecated됨.
		// 하지만, Calendar 클래스를 이용할 경우 날짜/시간 처리에
		// 비용이 많이 든다는 것이 단점.
		 Calendar now = Calendar.getInstance();
		 int year = now.get(Calendar.YEAR);
		 int month = now.get(Calendar.MONTH)+1;
		 int day = now.get(Calendar.DAY_OF_MONTH);
		 int dayOfWeek = now.get(Calendar.DAY_OF_WEEK);
		 int hour = now.get(Calendar.HOUR);
		 int hourOfDay = now.get(Calendar.HOUR_OF_DAY);
		 int ampm = now.get(Calendar.AM_PM);
		 int minute = now.get(Calendar.MINUTE);
		 int second = now.get(Calendar.SECOND);
		 int millisecond = now.get(Calendar.MILLISECOND);
		
		StringBuilder sb1 = new StringBuilder();
		sb1.append(year).append("-").append(month).append("-").append(day).append("-");
		
		System.out.print(sb1.toString());	
		
		switch(dayOfWeek){
		case Calendar.SUNDAY:System.out.print("일요일-");break;
		case Calendar.MONDAY:System.out.print("월요일-");break;
		case Calendar.TUESDAY:System.out.print("화요일-");break;
		case Calendar.WEDNESDAY:System.out.print("수요일-");break;
		case Calendar.THURSDAY:System.out.print("목요일-");break;
		case Calendar.FRIDAY:System.out.print("금요일-");break;
		case Calendar.SATURDAY:System.out.print("토요일-");break;
		}
		
		System.out.print("("+hourOfDay+"시)");
		if(ampm==Calendar.AM)System.out.print("오전-");
		else System.out.print("오후-");
		
		System.out.print(sb1.append(hour).append("시-").append(minute).append("분-").append(second)
				.append("초-").append(millisecond).append("밀리초"));
		
		
		 
		//한편 jdk8에는 JSR-310에 따라 
		// 새로운 날짜/ 시간 처리 라이브러리가 추가됨
		// LocalDateTime,ZoneDateTime
		
	}  // public static void main
}  // public class J18StringBuildCalendar 
